Latest Entries »

最近各大學開始縮減校友的 Google Drive 儲存容量,過去我也放了很多相片在 Google Photos,而且還精心編輯了很多 “相簿" 在 Google Photos 裡,事到如今必須把轉出來放到個人的 Google 帳戶下。這在 Google Photo 下沒有簡單的辦法,但是有一個方法勉強可以做到,包含保留這些精選的相簿。

I. 首先把所有相片分享給新帳戶

  1. 在要移出的原 Google Photos 帳號上開啟 “親友共享" 給你要接收照片的新 Google 帳戶。
  2. 到新帳戶的 Photos 的 “分享",接受原帳戶的 “親友共享" 邀請,然後選擇把所有來自原帳戶的照片都自動儲存下來。右上角設定的齒輪 > 親友共享 > 來自 「<原帳戶名>」下面 > 儲存到你的帳戶 > 改成 “儲存所有照片"。這樣就算原帳號刪掉照片,新帳戶還是會有照片。
  3. 檢查新帳戶是否有原帳戶的照片顯示出來。

II. 接著手動備份每個 “相簿"
這個方法可以半自動的保留原來相簿中的順序

  1. 在原帳戶 > 相簿
  2. 在要備份的相簿點擊"更多選項" (在相簿縮圖右上角的 3 點) > 共享相簿 > 點擊下方的 “建立連結"* > 建立連結
    (*如果你的原帳戶容量已超過允許的容量,你會無法直接寄 email 分享給別人導致分享失敗。所以建議在這步不要按清單中的 Google 帳戶,而只使用連結分享。)
  3. 等連結建立好後 > 複製 > 開新瀏覽器分頁 > 開啟剛剛複製的相簿分享網址
  4. 確定右上角大頭貼是以新帳戶來瀏覽此相簿的
  5. 全選所有相片 (先按第一張照片左上角的勾勾,再到最後一張照片按著 Shift 點最後一張照片的勾勾)
  6. 按右上角的 + (新增至) > 相簿 > 新增相簿 > 輸入相簿的標題 (可以先複製好標題,再按+,以節省輸入時間) > 按左上角勾勾,就建立完畢
  7. 重複這個步驟把所有原帳戶的相簿都分享並在新帳戶儲存下來

遺憾如果相簿中間有放像是 “所在地" 的格子,這些必須手動加入。建議可以把原相簿放在畫面左邊,新相簿放在右邊,這樣複製名稱會快很多。如果相簿中間友與朋有的對話,也無法保留。

關於分享後相片容量使用的部分,相片仍然只會先計算在原帳戶上,據說要原帳戶刪除照片一陣子後,才會計入新帳戶的容量使用。

Sony WF-1000XM4:
抗噪效果最好,音質最好,但用了記憶海綿當耳塞,所以戴久了不太舒服。而且比較大顆,所以走路的時候好像會掉出來的感覺。系統整合的和 Android, Mac, Windows 都不錯。手機上還有可調 EQ 的 App ,還可以控制 ambient sound 的程度。

Apple AirPods Pro:
抗噪效果不錯,音質也不錯,底噪有點明顯。比 WF-1000XM4 舒服得多了,但 Apple 的耳機好像跟我的耳朵稍微不合 (最早ipod時代的有線耳機也是),所以戴超過 1 小時耳殼還是有點感覺。跟非 Apple 產品意外的不合,拿下來自動暫停播放的功能在非 Apple 產品上都被拿掉了。

Google Pixel Buds A-Series:
沒有主動抗噪,但最便宜,也最舒適。音質不錯,雖然低頻略少。控制和系統整合跟 Android, Mac, Windows 都很不錯。但因為沒有 ambient sound 模式,戴著耳機講話會覺得自己聽起來好像鼻音很重。

用系統管理員權限開啟命令提示字元 (cmd)
若要停用區域網路

netsh interface set interface name="乙太網路" admin=disabled

若要啟用區域網路

netsh interface set interface name="乙太網路" admin=enabled

註解: “乙太網路" 是你的有線網路卡的名稱,Windows 10 可以到 設定 > 網路和網際網路 > 變更介面卡選項 下查看或變更網卡的名稱。

透過區域網路,讓 Mac 與 Windows 10 共享檔案

I. macOS 共享給 Windows 10:
[mac 端]
1. 開啟 System Preferences > Sharing
2. 按左下角鎖頭,解鎖獲得管理員權限
3. 左側 File Sharing 打勾
4. 按 Options > 確定 Share files and folders using SMB 為打勾
5. 下方 Windows File Sharing: 打勾可以登入的帳號 (如果沒有建立其他 mac 的帳號,這裡只會看到你自己的管理員權限帳號)
6. 輸入該帳號的密碼後 按 Done 離開回到 Sharing 設定
7. 注意 File Sharing: on 下方可以看到自己的 local ip 如: smb://192.168.0.1,此 ip 可以供 Windows 登入
8. 到 System Preferences > Network > 右下角 “Advanced…" > “WINS" 頁面確定 Workgroup 與 Windows 的電腦相同 (一般Windows 的預設為 WORKGROUP)

[Windows 10 端]
1. 檢查 Windows 的 workgroup (工作群組) 名稱 (按 Win + Pause 開啟或到 控制台>系統及安全>系統 顯示系統資訊) 與 mac 的相同
2. 到 設定 > 網路和網際網路 > 狀態 > 變更您的網路設定 > 共用選項
3. 在使用中的目前設定檔下勾選 “開啟網路探索" 及 “開啟檔案及印表機共用"
4. 按 “儲存變更" 後離開
5. 開啟檔案總管,在上方網址列輸入

\\[mac 的 local ip]

這裡 mac 的 local ip 是剛剛在 mac 上看到的 smb:// 後方的 ip,例如輸入 \\192.168.0.1
6. 輸入 mac 上的帳號密碼,即完成連線

注意: 此方法下該 mac 帳號所能看到的所有檔案 (包含系統檔) 皆會自動分享給登入的電腦,並擁有完整修改的權限。除非另開一個 mac 帳號,並限制可以看到的資料夾。因此建議不使用時,將其關閉。

Reference: https://support.apple.com/zh-tw/guide/mac-help/mchlp1657/10.14/mac/10.14

II. Windows 10 共享給 macOS:
[Windows 10 端]
1. 到 設定 > 網路和網際網路 > 狀態 > 變更您的網路設定 > 共用選項,在使用中的目前設定檔下確定 “開啟網路探索" 及 “開啟檔案及印表機共用" 有勾選 就算沒有開啟似乎也還是可以連線
2. 查詢 Windows 電腦名稱 (控制台>系統及安全>系統 下的 電腦名稱)
3. 開啟檔案總管
4. 到要開啟共用的資料夾,按右鍵 > 內容 > “共用" (標籤頁) > 進階共用(D)… > 打勾 “共用此資料夾(S)"
5. 按 確定 > 確定 完成設定

[macOS 端]
1. 開啟 Finder
2. 左下角 Shared (共享),找到並選取你的 Windows 電腦名稱,點選右上的 Connect As… (連接身分…)
3. 選取 Registered User (註冊使用者),並輸入 Windows 上的使用者名稱及密碼,後按 Connect 連線
4. 若設定正確,會看到剛剛所分享的資料夾

注意:
1. 預設 Windows 還會分享完整的使用者資料夾,建議可以關閉: 開啟檔案總管到 C:\使用者 > 右鍵 > 內容 > 共用 > 進階共用 >取消勾選 “共用此資料夾(S)"。
2. 不論是否有 “開啟網路探索" 及 “開啟檔案及印表機共用",只要有任何資料夾設定為"共用"且分享權限給一位 User,則當該 User 透過網路登入這台 Windows 就看到該資料夾。因此要徹底關閉網路分享,必須到各個資料夾去關閉共用。
3. 在 “進階共用設定" 下的 “所有網路",若開啟 “公用資料夾共用",則會連帶一同分享使用者資料夾 C:\使用者\[使用者名稱]\ 給登入的使用者,無法關閉。若稍後關閉 “公用資料夾共用",則還需要到 C:\使用者\ 去手動移除共用權限,否則預設會維持分享。
4. 可以看到只要具有 Windows 或 Mac 使用者的帳號密碼,就透過區域網路獲得該電腦的許多檔案,該作業系統的使用者也不會發覺,因此作業系統的使用者密碼不能設定得太簡單,以免區域網路上的其他電腦攻擊。
5. 網路上有人建議開啟 Windows 的 SMB 1.0 功能。但 SMB 1.0 系統老舊,其漏洞曾造成勒索病毒的入侵,因此不建議開啟 (微軟也不建議使用 SMB 1.0)。而這裡所使用的方法不需要額外啟用 SMB 1.0 也可以運作。

Reference:
https://support.apple.com/zh-tw/guide/mac-help/mchlp1660/10.14/mac/10.14
https://support.microsoft.com/en-us/help/4092694/windows-10-file-sharing-over-a-network

很榮幸這次參與玉山的台灣不動產預測拿到第四名!

下面是我們隊伍報告的簡報檔及建模書面報告,歡迎大家共同分享討論
[簡報] https://docs.google.com/presentation/d/1P-N77IkxL-ps-dCR02iWHv2dclDLPBRwHjGHy4CwK-U/edit?usp=sharing

[書面] https://docs.google.com/document/d/1SPfL84DocCJlja03vGcS3ae-R7MddwPc_gRcB35uaz4/edit?usp=sharing

[Github] https://github.com/skyhuang1208/tbrain-realestate

嘗試新的平台 Medium

最近 wordpress 的廣告似乎有點太誇張了

想說來換一下新的平台 Meduim

https://medium.com/@louis.yang.925

以後可能會多使用 Medium

不過缺點是,Medium 的文章,如果不付費,不會讓搜尋引擎找到,只能透過連結瀏覽。 再看看吧…

WordPress 的廣告

最近發現 WordPress 的廣告似乎有點太多了,版面約占越大。

有些廣告看了也令人不太舒服。

似乎是時候改用別的平台了?

Jupyter notebook 雖然支援 Markdown 各式可以讓文字變成標題或是段落標題,但預設無法看到整個 notebook 的大綱和目錄 (table of content)。

Jupyter notebook extensions 是一些不錯用的 Jupyter 外掛,其中包含顯示大綱 table of content 的功能 toc2 (table of content(2)),對編輯較長的 notebook 時很有用。

table of content (2) extension

安裝 Jupyter notebook extensions 並啟用 toc2 的方法:
1. 開啟一個 Jupyter notebook (或在 Terminal 內也可) ,在 cells 內輸入並執行:

!pip3 install jupyter_contrib_nbextensions
!jupyter contrib nbextension install --user
!jupyter nbextension enable toc2/main

(若是 Terminal 內,則不須輸入開頭的驚嘆號"!")
2. 接著重新整理頁面,就會啟動 toc2 extension

Jupyter notebook extensions 還有其他好用的功能,詳見 https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/nbextensions.html

若要啟動其餘的 extensions,也可以透過像

!jupyter nbextension enable /main

來啟動。

Reference: https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/nbextensions/toc2/README.html

A/B Test

Resources: Google free course on A/B testing

1. 先確定已安裝 Python (建議到 Python 官網下載安裝 64 bits https://www.python.org/downloads/windows/ )
2. 安裝 Java https://www.java.com/ ,建議安裝到 C:\Java\ 下。若 Java 安裝路徑有空白,pyspark 執行會出現錯誤。
3. 新增 JAVA_HOME 到環境變數,例如:

JAVA_HOME = C:\Java\jre1.8.0_241


4. 在命令提示字元輸入

pip install pyspark

來下載安裝 pyspark
5. 若想要在 Jupyter Notebook 下啟動 pyspark,可以加入下列參數到 Windows 環境變數 (使用者變數或系統變數皆可)

PYSPARK_DRIVER_PYTHON = jupyter
PYSPARK_DRIVER_PYTHON_OPTS = 'notebook'
PYSPARK_PYTHON = python

6. 在命令提示字元輸入 pyspark 即可啟動
但是在 Windows 上還需要手動下載 winutils.exe 讓 Hadoop 在 Windows 上正常運作
7. 到 https://github.com/steveloughran/winutils/ 下載對應版本的 winutils.exe (在 bin 資料夾內,例如: https://github.com/steveloughran/winutils/blob/master/hadoop-3.0.0/bin/winutils.exe)
8. 將 winutils.exe 放到 C:\winutils\bin\ 下
9. 新增 Windows 環境變數:

HADOOP_HOME = C:\winutils

接著還會遇到暫存資料夾 tmp\hive 權限的問題
10. 在你要開啟專案的硬碟的根目錄 (如 E:\) 建立資料夾 \tmp\hive
(假如 ipynb 在 E:\abc\def\code.ipynb 內,就建立兩個資料夾在 E:\tmp\hive,一般此資料夾會自動在執行 pyspark 時建立,但權限會有問題,需手動修改)
11. 用 winutils.exe 改變該暫存資料夾的權限

%HADOOP_HOME%\bin\winutils.exe chmod 777 E:\tmp\hive

12. 檢查該資料夾權限

%HADOOP_HOME%\bin\winutils.exe ls E:\tmp\hive

應該要為 drwxrwxrwx

這樣應該就可以正常使用 pyspark 了

Reference: https://blogs.msdn.microsoft.com/arsen/2016/02/09/resolving-spark-1-6-0-java-lang-nullpointerexception-not-found-value-sqlcontext-error-when-running-spark-shell-on-windows-10-64-bit/